package com.zpark.client;

import com.zpark.config.FeignConfig;
import com.zpark.pojo.User;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;

/**
 * TODO
 *
 * @Description
 * @Author zhangbing
 * @Date 2024/4/22 10:03 Feign会通过动态代理，帮我们生成实现类
 **/
/**
 * 注解@FeignClient的作用是声接口开启feign功能
 * 属性 value：指定映射的微服务（即在服务注册中心的服务名字）
 * 属性 fallback：当服务提供者宕机之后，执行指定实现类中的方法，而不是调用宕机的服务器接口
 * 属性configuration：配置feign的配置类
 */
@FeignClient(value = "User-Service2104",  //服务名称
        fallback = UserFeignClientFallback.class,
        configuration = FeignConfig.class
)  //fallback 服务降级
public interface UserFeignClient {

    //http://User-Service2104/user/"+id
    @GetMapping("/user/{id}")
    User findById(@PathVariable("id") Long id);

}
